/*
 * @Author: yanyufengqing 1624478125@qq.com
 * @Date: 2025-10-03 20:20:20
 * @LastEditors: yanyufengqing 1624478125@qq.com
 * @LastEditTime: 2025-10-03 20:28:19
 * @FilePath: \manage-system\src\store\sliderbar.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import { defineStore } from 'pinia';

/**
 * 主应用状态管理store
 * main是store的名称，在整个应用中必须是唯一的，并且会在开发工具中显示
 */
export const useSidebarStore = defineStore('slidebar', {
  /**
   * 状态管理函数，返回初始状态
   * 目的：管理侧边栏的折叠状态和主题颜色设置
   */
  state: () => {
    return {
      // 侧边栏折叠状态，默认为展开(false)
      collapse: false,
      // 侧边栏背景颜色，从localStorage读取或使用默认值#324157(深蓝色)
      bgColor: localStorage.getItem('slidebar-bg-color') || '#324157',
      // 侧边栏文字颜色，从localStorage读取或使用默认值#bfcbd9(浅灰色)
      textColor: localStorage.getItem('sidebar-text-color') || '#bfcbd9',
    };
  },
  // 可选的getters（计算属性），当前为空
  getters: {},
  /**
   * 可选的actions（操作方法）
   * 目的：提供修改状态的方法，并确保状态变化持久化到localStorage
   */
  actions: {
    /**
     * 切换侧边栏折叠状态
     * 目的：控制侧边栏的展开/折叠，用于响应式布局
     */
    handleCollapse() {
      this.collapse = !this.collapse;
    },
    /**
     * 设置侧边栏背景颜色
     * 目的：修改背景颜色并持久化保存到localStorage
     * @param color - 新的背景颜色值
     */
    setBgColor(color: string) {
      this.bgColor = color;
      localStorage.setItem('sidebar-bg-color', color);
    },
    /**
     * 设置侧边栏文字颜色
     * 目的：修改文字颜色并持久化保存到localStorage
     * @param color - 新的文字颜色值
     */
    setTextColor(color: string) {
      this.textColor = color;
      localStorage.setItem('sidebar-text-color', color);
    },
  },
});
